Such a system will often consist of a central or main subsystem with the other subsystems coupled to it somewhat analogously to a peripheral subsystem. The main subsystem (or simply "system") will be designed to deal with most of the system workload, and will therefore normally have a longword length; it will also include a main (or system) memory. The subsystem will be designed primarily to deal with some specialised function, such as a communication link, which involves a shorter word length than the main system.
Such a system design, with the main system and the subsystem having different word lengths, may be optimal, in that designing the subsystem with a word length matching the main system would clearly be inefficient. Such system design may also result from upgrading existing system designs, since it may be better to adapt a well-established subsystem design than to generate a completely new design. (Compatibility of the new design with existing systems may also be important).
In such a system, communication between the subsystem and the main system will often be primarily through the main memory, which being intended to operate as effectively a part of the main system will have a long word length. We can take it that the subsystem word length is an exact fraction of the full word length. A 1:2 ratio (e.g. 16 and 32 bits) will be the most common, and we will for convenience assume that this is the case, though a ratio such as 1:4 is possible. (We shall use the terms "longword" and "shortword" for the two word lengths).
A basic requirement which any such system has to satisfy is for the main system and the subsystem both to be able to access the main memory (or at least a substantial part of it), and thereby share information (i.e. pass information between themselves). There are difficulties if, as is often the case, the main system is organised or operated in such a way that main memory accesses must be by full longwords.
A simple technique is for both the main system and the subsystem to address the memory in the same way, i.e. using the same addresses. A main system access to the memory will operate on the full longword length; a subsystem access will operate on only half (normally the lower half) of the longword, with the upper half being discarded on reading and being forced to 0 on writing. This technique is known as "striping". The memory space is striped, with stripes of two different colours alternating through the memory; the stripes of one colour are used differently to the stripes of the other colour. In this instance, only the stripes of one colour are used by the subsystem.
The disadvantage of this simple technique of striping is that memory space is used inefficiently. If the subsytem uses a large amount of memory, then half the memory capacity is unused.
The memory may include a controller (typically a DMA controller) which allows block writing. With this, a block of words can be sent together with the address of the first word, and the controller automatically increments the address for the following words of the block. If, as will usually be the case, the block size is limited (it is normally fixed) and the data to be written into the main memory consists of several blocks, the result is that the memory is striped as before; the only difference is that the stripes are wider.
An alternative technique is packing and unpacking. The subsystem is coupled to the main memory through a packing/unpacking unit, which packs shortwords in pairs from the subsystem for storage as longwords in the main memory, and unpacks the longwords into pairs of shortwords for use by the subsystem.
The main disadvantage of this technique of packing and unpacking is with the writing of single shortwords into the main memory. Only longwords can be written into main memory, and the writing of a word destroys whatever was previously in the location into which the new word is being written. Hence to write a shortword into half of a longword location in memory without destroying the contents of the other shortword half of the longword location, the longword has to be read out, the new shortword has to be written into the appropriate half of this longword (while the other half is preserved), and the modified longword has to be written back into memory.
This procedure is clearly highly inefficient. While it may be tolerable in certain special circumstances, it more than doubles the access time for shortword writes.